Computer memory provides the storage facilities for programming and data. Computer memory comprises many memory cells arranged in arrays of rows and columns. Random access memory is one variant of computer memory that allows reading and writing of individual cells within an array.
Historically, the development of memory has been motivated by several well-recognized parameters. As with most electronic technology, miniaturization, improved performance and lower costs are critical forces behind the development of new memories.
Computer memory is often used in data transmission systems. With the reduction in the physical size of memories, errors in stored data can result from atomic events in the atmosphere. For some applications, it is advantageous to include provisions to detect and, in some cases, correct memory errors.
Traditional methods of providing error correction and detection have required the addition of separate computer memory. Providing separate memory requires its own associated power supply, data input and output lines, addressing and decode logic. Where additional memory dedicated to error correction is provided, the objectives of miniaturization, improved performance and lower costs are often frustrated.